load("@prysm//tools/go:def.bzl", "go_library")
load("@io_bazel_rules_go//go:def.bzl", "go_test")

go_library(
    name = "go_default_library",
    srcs = [
        "deadlines.go",
        "decode_pubsub.go",
        "doc.go",
        "error.go",
        "fuzz_exports.go",  # keep
        "log.go",
        "metrics.go",
        "pending_attestations_queue.go",
        "pending_blocks_queue.go",
        "rate_limiter.go",
        "rpc.go",
        "rpc_beacon_blocks_by_range.go",
        "rpc_beacon_blocks_by_root.go",
        "rpc_chunked_response.go",
        "rpc_goodbye.go",
        "rpc_metadata.go",
        "rpc_ping.go",
        "rpc_send_request.go",
        "rpc_status.go",
        "service.go",
        "subscriber.go",
        "subscriber_beacon_aggregate_proof.go",
        "subscriber_beacon_attestation.go",
        "subscriber_beacon_blocks.go",
        "subscriber_handlers.go",
        "utils.go",
        "validate_aggregate_proof.go",
        "validate_attester_slashing.go",
        "validate_beacon_attestation.go",
        "validate_beacon_blocks.go",
        "validate_proposer_slashing.go",
        "validate_voluntary_exit.go",
    ],
    importpath = "github.com/prysmaticlabs/prysm/beacon-chain/sync",
    visibility = [
        "//beacon-chain:__subpackages__",
        "//fuzz:__pkg__",
    ],
    deps = [
        "//beacon-chain/blockchain:go_default_library",
        "//beacon-chain/cache:go_default_library",
        "//beacon-chain/core/blocks:go_default_library",
        "//beacon-chain/core/feed:go_default_library",
        "//beacon-chain/core/feed/block:go_default_library",
        "//beacon-chain/core/feed/operation:go_default_library",
        "//beacon-chain/core/feed/state:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/state:go_default_library",
        "//beacon-chain/core/state/interop:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/filters:go_default_library",
        "//beacon-chain/flags:go_default_library",
        "//beacon-chain/operations/attestations:go_default_library",
        "//beacon-chain/operations/slashings:go_default_library",
        "//beacon-chain/operations/voluntaryexits:go_default_library",
        "//beacon-chain/p2p:go_default_library",
        "//beacon-chain/p2p/encoder:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/state/stategen:go_default_library",
        "//proto/beacon/p2p/v1:go_default_library",
        "//shared:go_default_library",
        "//shared/abool:go_default_library",
        "//shared/bls:go_default_library",
        "//shared/bytesutil:go_default_library",
        "//shared/hashutil:go_default_library",
        "//shared/messagehandler:go_default_library",
        "//shared/p2putils:go_default_library",
        "//shared/params:go_default_library",
        "//shared/rand:go_default_library",
        "//shared/runutil:go_default_library",
        "//shared/sliceutil:go_default_library",
        "//shared/slotutil:go_default_library",
        "//shared/timeutils:go_default_library",
        "//shared/traceutil:go_default_library",
        "@com_github_gogo_protobuf//proto:go_default_library",
        "@com_github_hashicorp_golang_lru//:go_default_library",
        "@com_github_kevinms_leakybucket_go//:go_default_library",
        "@com_github_libp2p_go_libp2p_core//:go_default_library",
        "@com_github_libp2p_go_libp2p_core//helpers:go_default_library",
        "@com_github_libp2p_go_libp2p_core//mux:go_default_library",
        "@com_github_libp2p_go_libp2p_core//network:go_default_library",
        "@com_github_libp2p_go_libp2p_core//peer:go_default_library",
        "@com_github_libp2p_go_libp2p_core//protocol:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//:go_default_library",
        "@com_github_patrickmn_go_cache//:go_default_library",
        "@com_github_pkg_errors//:go_default_library",
        "@com_github_prometheus_client_golang//prometheus:go_default_library",
        "@com_github_prometheus_client_golang//prometheus/promauto:go_default_library",
        "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
        "@com_github_prysmaticlabs_go_ssz//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_trailofbits_go_mutexasserts//:go_default_library",
        "@io_opencensus_go//trace:go_default_library",
    ],
)

go_test(
    name = "go_default_test",
    size = "small",
    srcs = [
        "decode_pubsub_test.go",
        "error_test.go",
        "pending_attestations_queue_test.go",
        "pending_blocks_queue_test.go",
        "rate_limiter_test.go",
        "rpc_beacon_blocks_by_range_test.go",
        "rpc_beacon_blocks_by_root_test.go",
        "rpc_goodbye_test.go",
        "rpc_metadata_test.go",
        "rpc_ping_test.go",
        "rpc_send_request_test.go",
        "rpc_status_test.go",
        "rpc_test.go",
        "service_test.go",
        "subscriber_beacon_aggregate_proof_test.go",
        "subscriber_beacon_blocks_test.go",
        "subscriber_test.go",
        "sync_test.go",
        "utils_test.go",
        "validate_aggregate_proof_test.go",
        "validate_attester_slashing_test.go",
        "validate_beacon_attestation_test.go",
        "validate_beacon_blocks_test.go",
        "validate_proposer_slashing_test.go",
        "validate_voluntary_exit_test.go",
    ],
    embed = [":go_default_library"],
    shard_count = 4,
    deps = [
        "//beacon-chain/blockchain/testing:go_default_library",
        "//beacon-chain/cache:go_default_library",
        "//beacon-chain/core/feed:go_default_library",
        "//beacon-chain/core/feed/state:go_default_library",
        "//beacon-chain/core/helpers:go_default_library",
        "//beacon-chain/core/state:go_default_library",
        "//beacon-chain/db:go_default_library",
        "//beacon-chain/db/testing:go_default_library",
        "//beacon-chain/flags:go_default_library",
        "//beacon-chain/operations/attestations:go_default_library",
        "//beacon-chain/operations/slashings:go_default_library",
        "//beacon-chain/p2p:go_default_library",
        "//beacon-chain/p2p/encoder:go_default_library",
        "//beacon-chain/p2p/peers:go_default_library",
        "//beacon-chain/p2p/testing:go_default_library",
        "//beacon-chain/p2p/types:go_default_library",
        "//beacon-chain/state:go_default_library",
        "//beacon-chain/state/stategen:go_default_library",
        "//beacon-chain/sync/initial-sync/testing:go_default_library",
        "//proto/beacon/p2p/v1:go_default_library",
        "//shared/abool:go_default_library",
        "//shared/attestationutil:go_default_library",
        "//shared/bls:go_default_library",
        "//shared/bytesutil:go_default_library",
        "//shared/params:go_default_library",
        "//shared/rand:go_default_library",
        "//shared/testutil:go_default_library",
        "//shared/testutil/assert:go_default_library",
        "//shared/testutil/require:go_default_library",
        "//shared/timeutils:go_default_library",
        "@com_github_d4l3k_messagediff//:go_default_library",
        "@com_github_ethereum_go_ethereum//p2p/enr:go_default_library",
        "@com_github_gogo_protobuf//proto:go_default_library",
        "@com_github_hashicorp_golang_lru//:go_default_library",
        "@com_github_kevinms_leakybucket_go//:go_default_library",
        "@com_github_libp2p_go_libp2p_core//:go_default_library",
        "@com_github_libp2p_go_libp2p_core//mux:go_default_library",
        "@com_github_libp2p_go_libp2p_core//network:go_default_library",
        "@com_github_libp2p_go_libp2p_core//peer:go_default_library",
        "@com_github_libp2p_go_libp2p_core//protocol:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//:go_default_library",
        "@com_github_libp2p_go_libp2p_pubsub//pb:go_default_library",
        "@com_github_patrickmn_go_cache//:go_default_library",
        "@com_github_protolambda_zssz//:go_default_library",
        "@com_github_protolambda_zssz//types:go_default_library",
        "@com_github_prysmaticlabs_ethereumapis//eth/v1alpha1:go_default_library",
        "@com_github_prysmaticlabs_go_bitfield//:go_default_library",
        "@com_github_prysmaticlabs_go_ssz//:go_default_library",
        "@com_github_sirupsen_logrus//:go_default_library",
        "@com_github_sirupsen_logrus//hooks/test:go_default_library",
    ],
)
